#pragma once
#include"8_deque.h"
namespace MSTH {
	template<class T, class Sequence = deque<T>>
	class queue {
	protected:
		Sequence c;
	public:
		typedef typename Sequence::value_type value_type;
		typedef typename Sequence::reference reference;
		typedef typename Sequence::size_type size_type;

		bool empty() const { return c.empty(); }
		void push(const value_type& x) { c.push_back(x); }
		void pop() { c.pop_front(); }
		size_type size()const { return c.size(); }
		reference front() { return c.front(); }
		reference back() { return c.back(); }
	};
}